﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.Prism.Modularity;
using System.ComponentModel.Composition;
using ProjTemp.Common.Logging;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.ServiceLocation;

namespace ProjTemp.Desktop.Common.Module
{
    public abstract class ModuleBase : IModule
    {
        protected readonly ILogger _logger;
        protected readonly IRegionManager _regionManager;
        protected readonly IEventAggregator _eventAggregator;
        protected readonly IServiceLocator _serviceLocator;

        public ModuleBase(ILogger logger, IRegionManager regionManager, IEventAggregator eventAggregator, IServiceLocator serviceLocator)
        {
            this._logger = logger;
            this._regionManager = regionManager;
            this._eventAggregator = eventAggregator;
            this._serviceLocator = serviceLocator;
        }

        public abstract void Initialize();
    }
}
